import random
from Elementos import *
from Personagens import *

def acha_pos_monstro():
    l1 = []
    l2 = []
    i = 30
    l1.append(i)
    l2.append(i)
    for num in range(9):
        i += 60
        l1.append(i)
    i = 30
    for num in range(7):
        i += 60
        l2.append(i)
    return (random.choice(l1), random.choice(l2))

def desenhaParedes(dicMonstros, boomColide, img_parede_redor, img_parede_centro, img_muro_destroi):
    linhas_fase = open('fases/fase.txt').readlines()

    lista_paredes = []
    ordenada = 0

    for linha in linhas_fase:
        abcissa = 0
        for caractere in linha[:-1]:
            position = (abcissa, ordenada)
            if caractere == '=':
                permitido_criar = True
                for monstroColide in dicMonstros:
                    if position == (monstroColide.rect.left, monstroColide.rect.top):
                        permitido_criar = False
                if position == (30, 30) or position == (60, 30) or position == (30, 60) or position == (570, 450) or position == (540, 450) or position == (570, 420):
                    permitido_criar = False
                if permitido_criar:
                    muro = Muro(abcissa, ordenada, img_muro_destroi)
                    lista_paredes.append(muro)
            elif caractere == '#':
                parede = Parede(abcissa, ordenada, img_parede_centro)
                lista_paredes.append(parede)
            elif caractere == '%':
                parede = Parede(abcissa, ordenada, img_parede_redor)
                lista_paredes.append(parede)
            abcissa += 30
        ordenada += 30

    paredeGrupo = pygame.sprite.RenderPlain(lista_paredes)
    return paredeGrupo


def acha_iten(dic,valor):
    for i in dic:
        if dic[i] == valor:
            return i

def ordena_recordes(novo_jogador, novo_recorde):
    recordes = open('recordes.txt').readlines()
    dic_recordes = {}
    for conjunto in recordes:
        valores = conjunto.strip().split('|')
        nome = valores[1]
        pontuacao = int(valores[2])
        dic_recordes[nome] = pontuacao
    if novo_jogador in dic_recordes:
        if int(novo_recorde) > dic_recordes[novo_jogador]:
            dic_recordes[novo_jogador] = int(novo_recorde)
    else:
        dic_recordes[novo_jogador] = int(novo_recorde)
    posicao = 1
    arq = open('recordes.txt', 'w')
    while dic_recordes != {}:
        for nome, pontuacao in dic_recordes.items():
            if pontuacao == max(dic_recordes.values()):
                arq.write('%s|%s|%s\n' % (str(posicao), nome, str(pontuacao)))
                del dic_recordes[nome]
                posicao += 1
    arq.close()

    records = open('recordes.txt').readlines()
    arquivo = open('recordes.txt', 'w')
    for recorde in recordes:
        arquivo.write(recorde)
    arq.close()

def arredonda_pos_boom(coordenada):
    if coordenada % 30 <= 15:
        coordenada -= coordenada % 30
    else:
        coordenada += (30 - coordenada % 30)
    return coordenada
